package com.example.design_pattern.factory.abstracts.facroty;

import com.example.design_pattern.factory.abstracts.ingredient.cheese.Cheese;
import com.example.design_pattern.factory.abstracts.ingredient.cheese.MozzarellaCheese;
import com.example.design_pattern.factory.abstracts.ingredient.clams.Clams;
import com.example.design_pattern.factory.abstracts.ingredient.clams.FrozenClams;
import com.example.design_pattern.factory.abstracts.ingredient.dough.Dough;
import com.example.design_pattern.factory.abstracts.ingredient.dough.ThickCrustDough;
import com.example.design_pattern.factory.abstracts.ingredient.pepperoni.Pepperoni;
import com.example.design_pattern.factory.abstracts.ingredient.pepperoni.SlicedPepperoni;
import com.example.design_pattern.factory.abstracts.ingredient.sauce.PlumTomatoSauce;
import com.example.design_pattern.factory.abstracts.ingredient.sauce.Sauce;
import com.example.design_pattern.factory.abstracts.ingredient.veggies.BlackOlives;
import com.example.design_pattern.factory.abstracts.ingredient.veggies.Eggplant;
import com.example.design_pattern.factory.abstracts.ingredient.veggies.Spinach;
import com.example.design_pattern.factory.abstracts.ingredient.veggies.Veggies;

public class ChicagoPizzaIngredientFactory
	implements PizzaIngredientFactory
{

	public Dough createDough() {
		return new ThickCrustDough();
	}

	public Sauce createSauce() {
		return new PlumTomatoSauce();
	}

	public Cheese createCheese() {
		return new MozzarellaCheese();
	}

	public Veggies[] createVeggies() {
		return new Veggies[]{ new BlackOlives(),
		                      new Spinach(),
		                      new Eggplant() };
	}

	public Pepperoni createPepperoni() {
		return new SlicedPepperoni();
	}

	public Clams createClam() {
		return new FrozenClams();
	}
}
